Name: gnatcoll-bindings Version: 2018 Release: 1%{?dist} Summary: The GNAT Components Collection – bindings Summary(sv): GNAT Components Collection – bindningar License: GPLv3+ # The source files are GPLv3+ and GPLv2+. These combine into GPLv3+ on the # binary code. URL: https://github.com/AdaCore/gnatcoll-bindings Source: http://mirrors.cdn.adacore.com/art/5b0ce9cfc7a4475261f97ca5#/gnatcoll-bindings-gpl-2018-src.tar.gz # The long hexadecimal number is what identifies the file on the server. # Don't forget to update it! # The latest known address of the download page is: # https://www.adacore.com/download/more BuildRequires: gcc-gnat gprbuild fedora-gnat-project-common sed dos2unix BuildRequires: gnatcoll-core-devel = 2018 BuildRequires: gmp-devel python3-devel readline-devel # Build only on architectures where GPRbuild is available: ExclusiveArch: %{GPRbuild_arches} # Gnatcoll.Python is excluded because of undefined symbols. It can be built by # passing "--with python" to RPMbuild. %bcond_with python %global common_description_en \ This is the bindings module of the GNAT Components Collection. It provides \ bindings to GMP, Iconv, %{?with_python:Python, }Readline and Syslog. \ %{!?with_python:The Python binding is excluded until it works with Python 3.} %global common_description_sv \ Detta är bindningsmodulen i GNAT Components Collection. Den tillhandahåller \ bindningar till GMP, Iconv, %{?with_python:Python, }Readline och Syslog. \ %{!?with_python:Pythonbindningen är utelämnad tills den fungerar med Python 3.} %description %{common_description_en} %description -l sv %{common_description_sv} %package -n gnatcoll-gmp Summary: The GNAT Components Collection – GMP binding Summary(sv): GNAT Components Collection – GMP-bindning %description -n gnatcoll-gmp This is the GMP component of the GNAT Components Collection. It is an interface to the GNU Multiple Precision (GMP) arithmetic library. %description -n gnatcoll-gmp -l sv Detta är GMP-komponenten i GNAT Components Collection. Den är ett gränssnitt mot biblioteket GNU Multiple Precision (GMP) för godtyckligt precisa beräkningar. %package -n gnatcoll-iconv Summary: The GNAT Components Collection – Iconv binding Summary(sv): GNAT Components Collection – Iconvbindning %description -n gnatcoll-iconv This is the Iconv component of the GNAT Components Collection. It is an interface to libiconv for conversion between character encodings. %description -n gnatcoll-iconv -l sv Detta är Iconv-komponenten i GNAT Components Collection. Den är ett gränssnitt mot biblioteket Iconv för omvandling mellan teckenkodningar. %if %{with python} %package -n gnatcoll-python Summary: The GNAT Components Collection – Python binding Summary(sv): GNAT Components Collection – Pythonbindning %description -n gnatcoll-python This is the Python component of the GNAT Components Collection. It is an interface to the Python interpreter. %description -n gnatcoll-python -l sv Detta är Python-komponenten i GNAT Components Collection. Den är ett gränssnitt mot pythontolken. %endif %package -n gnatcoll-readline Summary: The GNAT Components Collection – Readline binding Summary(sv): GNAT Components Collection – Readlinebindning %description -n gnatcoll-readline This is the Readline component of the GNAT Components Collection. It is an interface to the Readline library for interactive input from the user. %description -n gnatcoll-readline -l sv Detta är Readline-komponenten i GNAT Components Collection. Den är ett gränssnitt mot biblioteket Readline för interaktiv inmatning från användaren. %package -n gnatcoll-syslog Summary: The GNAT Components Collection – Syslog binding Summary(sv): GNAT Components Collection – Syslogbindning %description -n gnatcoll-syslog This is the Syslog component of the GNAT Components Collection. It is an interface to the system logger on Unix-like systems. %description -n gnatcoll-syslog -l sv Detta är Syslog-komponenten i GNAT Components Collection. Den är ett gränssnitt mot Unixlika operativsystems loggfunktion. %package devel Summary: Development files for the GNAT Components Collection – bindings Summary(sv): Filer för programmering med GNAT Components Collection – bindningar Requires: gnatcoll-gmp%{?_isa} = %{version}-%{release} Requires: gnatcoll-iconv%{?_isa} = %{version}-%{release} %if %{with python} Requires: gnatcoll-python%{?_isa} = %{version}-%{release} %endif Requires: gnatcoll-readline%{?_isa} = %{version}-%{release} Requires: gnatcoll-syslog%{?_isa} = %{version}-%{release} Requires: fedora-gnat-project-common gnatcoll-core-devel %description devel %{common_description_en} The gnatcoll-bindings-devel package contains source code and linking information for developing applications that use the GNAT Components Collection bindings. %description devel -l sv %{common_description_sv} Paketet gnatcoll-bindings-devel innehåller källkod och länkningsinformation som behövs för att utveckla program som använder GNAT Components Collections bindningar. %global set_env export GNATCOLL_VERSION=%{version} \ export BUILD=PROD \ export LIBRARY_TYPE=relocatable \ export GNATCOLL_ICONV_OPT=@/dev/null \ export GNATCOLL_PYTHON_CFLAGS=`python3-config --cflags` \ export GNATCOLL_PYTHON_LIBS=`python3-config --ldflags` # Iconv is not a separate library, but an empty GNATCOLL_ICONV_OPT doesn't # prevent GPRbuild from using the default "-liconv", so it's set to a value # that makes no difference. %prep %autosetup -n gnatcoll-bindings-gpl-2018-src # Convert line breaks. dos2unix --keepdate gmp/examples/gmp_examples.gpr %build %{set_env} for subdir in gmp iconv %{?with_python:python} readline syslog ; do component=gnatcoll_${subdir} gprbuild -P ${subdir}/${component}.gpr %{GPRbuild_optflags} done %install %{set_env} for subdir in gmp iconv %{?with_python:python} readline syslog ; do component=gnatcoll_${subdir} gprinstall -P ${subdir}/${component}.gpr \ --prefix=%{buildroot}%{_prefix} \ --lib-subdir=%{buildroot}%{_libdir} \ --ali-subdir=%{buildroot}%{_libdir}/${component} \ --no-lib-link -m --create-missing-dirs ln --symbolic --force lib${component}.so.%{version} \ %{buildroot}%{_libdir}/lib${component}.so # Make the generated usage project file architecture-independent. sed --regexp-extended --in-place \ '--expression=1i with "directories";' \ '--expression=/^-- This project has been generated/d' \ '--expression=/package Linker is/,/end Linker/d' \ '--expression=/python_(cflags|libs)/d' \ '--expression=s|^( *for +Source_Dirs +use +).*;$|\1(Directories.Includedir \& "/'${component}'");|i' \ '--expression=s|^( *for +Library_Dir +use +).*;$|\1Directories.Libdir;|i' \ '--expression=s|^( *for +Library_ALI_Dir +use +).*;$|\1Directories.Libdir \& "/'${component}'";|i' \ %{buildroot}%{_GNAT_project_dir}/${component}.gpr done # GPRinstall's manifest files are architecture-specific because they contain # what seems to be checksums of architecture-specific files, so they must not # be under _datadir. Their function is poorly documented, but they seem to be # used when GPRinstall uninstalls packages. The manifest files are therefore # irrelevant in this RPM package, so delete them. rm --recursive --force %{buildroot}%{_GNAT_project_dir}/manifests # These files may be of some value to developers: for subdir in iconv readline syslog ; do mkdir --parents %{buildroot}%{_docdir}/gnatcoll/${subdir} cp --preserve=timestamps ${subdir}/README.md \ %{buildroot}%{_docdir}/gnatcoll/${subdir}/ done # Move the examples to their proper place. mv %{buildroot}%{_datadir}/examples/gnatcoll %{buildroot}%{_docdir}/gnatcoll/examples # Install the license with a single pathname that is shared by the subpackages. mkdir --parents %{buildroot}%{_licensedir}/%{name} cp --preserve=timestamps COPYING3 %{buildroot}%{_licensedir}/%{name}/ %check %{_rpmconfigdir}/check-rpaths %files -n gnatcoll-gmp %{_libdir}/libgnatcoll_gmp.so.* %{_licensedir}/%{name} %files -n gnatcoll-iconv %{_libdir}/libgnatcoll_iconv.so.* %{_licensedir}/%{name} %if %{with python} %files -n gnatcoll-python %{_libdir}/libgnatcoll_python.so.* %{_licensedir}/%{name} %endif %files -n gnatcoll-readline %{_libdir}/libgnatcoll_readline.so.* %{_licensedir}/%{name} %files -n gnatcoll-syslog %{_libdir}/libgnatcoll_syslog.so.* %{_licensedir}/%{name} %files devel %{_includedir}/* %{_libdir}/*.so %{_libdir}/gnatcoll* %{_GNAT_project_dir}/* %{_docdir}/gnatcoll/* %changelog * Sat Mar 16 2019 Björn Persson - 2018-1 - new package